// 块级作用域
// {
//     let a = 6;
//     var b = 5;
//     console.log(a); //6
//     console.log(b); //5
// }
// console.log(b); //5
// console.log(a); //a is not defined

// 中括号 {} 就是代码块。


// 不能重复声明

// var a = 3;
// var a = 4;
// console.log(a); //4
// let a = 3;
// let a = 4;
// console.log(a); //报错

// 不存在变量提升

// // var 的情况
// console.log(foo); // 输出undefined
// var foo = 2;

// // let 的情况
// console.log(bar); // 报错ReferenceError   去掉babel转码否则报undefined  直接在浏览器里面操作
// let bar = 2;


// // 在循环中的优势

// var a1= [];
// var a2= [];
// for (let i = 0; i < 5; i++) {
//     a1[i] = ()=>{
//         console.log(i);
//     } 
// }
// for (var e = 0; e < 5; e++) {
//     a2[e] = ()=>{
//         console.log(e);
//     } 
// }
// a1[3]();    //3
// a2[3]();    //5

// const 声明
// const a = 1;
// a =2;
// console.log(a); //"a" is read-only

// const声明对象
// const a = {};
// console.log(a);
// a.aget = 18;
// console.log(a);
